
{{tag>Focal Bionic Xenial application paquet}}

----

{{ https://i.imgur.com/epoTNSU.png?100}}
====== Flatpak, un format de paquets universel ======

Le logiciel **flatpak** est un utilitaire (intégré aux logithèques graphiques, ou bien utilisable en ligne de commande) pour la gestion de paquets, le déploiement de logiciels, et l'isolement d'applications (//sandboxing//).

Il fournit un environnement isolé du reste du système (//sandbox//), où l'utilisateur peut faire fonctionner des applications de manière sûre :
  * le risque pour la stabilité est moindre (les paquets existants ne sont pas modifiés par l'installation des applis) ;
  * il n'y a **pas de conflits de dépendances** (en contrepartie, ça prend plus de place que les paquets des dépôts) ;
  * le risque pour la sécurité est moindre : les applications au format Flatpak demandent la permission de l'utilisateur pour accéder au matériel (webcam, clefs USB, ...) et aux fichiers de l'utilisateur.

Le projet est mené par freedesktop.org depuis 2014, jadis sous le nom de ''xdg-app'', le but étant de faciliter la distribution d'applications par des développeurs tiers sur toutes les distributions.

Depuis 2017, beaucoup d'applications populaires ont été rendues disponibles au format Flatpak : [[:Blender]], [[:Skype]], [[:Spotify]], [[:LibreOffice]], [[:Pitivi]], certaines applications [[:KDE]], beaucoup d'applications [[:GNOME]], beaucoup d'applications //elementaryOS//, etc.

Des applications récentes en cours de développement actif sont parfois même disponibles presque uniquement sous forme de Flatpak !

===== Pré-requis =====

  * Il faut absolument une version d’Ubuntu **supérieure ou égale à [[:16.04]]**.
  * Les [[:sudo|droits d’administration]] et une connexion internet sont requis pour l’installation du paquet **flatpak** lui-même.
  * Une connexion à internet est aussi nécessaire pour télécharger les logiciels à installer //via// **flatpak**.

===== Installation de l'utilitaire flatpak=====

==== Méthode recommandée (18.04 et plus) ====

[[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt>flatpak]]** depuis les dépôts.

- Le paquet **[[apt>gnome-software-plugin-flatpak]]** (qui n'existe pas pour la version 16.04) permet, optionnellement, de pouvoir gérer les logiciels Flatpak depuis la [[:gnome-software|logithèque GNOME]].

- Le paquet **[[apt>plasma-discover-flatpak-backend]]** (qui n'existe pas pour la version 16.04) permet, optionnellement, de pouvoir gérer les logiciels Flatpak depuis la [[:plasma-discover|logithèque KDE]].

==== Depuis un PPA (pour la version 16.04) ====

  - [[:PPA|Ajoutez le dépôt PPA]] **ppa:alexlarsson/flatpak**((https://launchpad.net/~alexlarsson/+archive/ubuntu/flatpak)) dans vos sources de logiciels.
  - [[:tutoriel:comment_modifier_sources_maj#recharger_la_liste_des_paquets|Rechargez la liste des paquets]]
  - [[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt>flatpak]]**.

===== Configuration =====

Les logiciels Flatpak ne viennent pas des dépôts d'Ubuntu, mais de sites souvent alimentés directement par les développeurs. Il faut référencer ces dépôts dans Ubuntu avant de pouvoir installer quelque chose.

Le principal dépôt de logiciels au format Flatpak est **Flathub** ; il est explorable en ligne [[https://flathub.org/apps|ici]] sous forme de site web. Pour l'explorer depuis la logithèque ou depuis le terminal, on peut l'​ajouter comme une source de logiciels avec la commande :

<code bash>flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo</code> \\ URL qui fonctionne en  10/2021 = https://dl.flathub.org/repo/flathub.flatpakrepo \\ 
Votre logithèque intégrera désormais les programmes disponibles sur ce dépôt.

Pour installer d'autres dépôts, voir le [[:tutoriel/installer_application_flatpak#ajouter_le_depot_flathub|tutoriel dédié]] à l'installation des dépôts flatpak.

===== Utilisation =====

La commande ''flatpak'' a de nombreuses utilisations possibles (pour le développement et la construction de paquets, pour la gestion avancée de dépôts et des environnements d'exécution, etc.) mais en tant qu'utilisateur, quelques usages en particulier sont à souligner.

<note help>Pensez au [[:man|manuel]] de la commande pour plus d'informations.
Attention, ''man flatpak'' ne vous donne pas d'informations directement utiles, mais une liste de sous-pages (flatpak-install, flatpak-update, flatpak-info, etc.) indépendantes.

Faites alors (par exemple) :
<code>man flatpak-run</code>
pour plus d'informations sur le lancement des applications.
</note>

==== Installation de logiciels ====

**Voir le [[:tutoriel/installer_application_flatpak|tutoriel dédié]].**

1. Soit directement à partir du site [[https://flathub.org/home|Flathub]] (ce site est également un magasin d'application).

2. Soit à partir de la logithèque (si le plugin logithèque a bien été installé). Les logiciels flatpak y sont mélangés avec les logiciels au format .deb. On peut les reconnaître sur la page du logiciel : la zone **source** indique le dépôt : **dl.flathub.org** pour flathub, par exemple.

3. Soit en ligne de commande :

<code>flatpak install nom_du_depot identifiant.du.logiciel</code>
donc avec flahub : 
<code>flatpak install flathub identifiant.du.logiciel</code>

<note help>Le premier logiciel que vous installerez sera peut-être long à installer car le système téléchargera un __environnement d'exécution__, qui pourra être réutilisé par les logiciels en format Flatpak installés par la suite.</note>

Avec les versions les plus récentes, l'installation peut se faire avec une commande plus simple
<code>flatpak install nom-du-logiciel</code>
La commande d'installation agit alors comme une recherche simplifiée : en fonction des logiciels correspondants dans les dépôts que vous avez configurés, on vous demandera de clarifier quel dépôt utiliser et quel logiciel installer. Par exemple :

<code>flatpak install maps</code>

peut avoir le retour interactif suivant (ici hélas en anglais) :

<code>Looking for matches…
Remotes found with refs similar to ‘maps’:

   1) ‘flathub’ (system)
   2) ‘flathub-beta’ (user)

Which do you want to use (0 to abort)? [0-2]: 1
Similar refs found for ‘maps’ in remote ‘flathub’ (system):

   1) app/io.github.rinigus.PureMaps/x86_64/stable
   2) app/org.gnome.Maps/x86_64/stable

Which do you want to use (0 to abort)? [0-2]: 2

org.gnome.Maps permissions:
    ipc       network      fallback-x11      wayland      x11      dri      dbus access [1]      system dbus access [2]

    [1] org.freedesktop.secrets, org.gnome.OnlineAccounts, org.gnome.evolution.dataserver.AddressBook10, org.gnome.evolution.dataserver.Calendar8, org.gnome.evolution.dataserver.Sources5,
        org.gnome.evolution.dataserver.Subprocess.Backend.*
    [2] org.freedesktop.GeoClue2, org.freedesktop.NetworkManager


        ID                             Branch          Op          Remote          Download
 1.     org.gnome.Maps.Locale          stable          i           flathub         < 11,7 MB (partial)
 2.     org.gnome.Maps                 stable          i           flathub          < 5,7 MB

Proceed with these changes to the system installation? [Y/n]: y
</code>

Il s'agit d'un exemple pour illustrer qu'avec la syntaxe simplifiée, la commande a toujours besoin de connaître le dépôt et l'identifiant exact du logiciel, mais le cas présenté est intentionnellement plus bavard que la moyenne.

==== Connaître les logiciels installés ====
Au terminal, tapez :
<code>flatpak list</code>
==== Lancement de logiciels ====

Les logiciels apparaissent avec les autres [[tutoriel:comment_lancer_application|dans vos menus, normalement]]. Toutefois la mise à jour de la liste des logiciels peut nécessiter un redémarrage du système. Le lancement via flatpak run permet de contourner cette nécessité de redémarrage lors des installations fraîches vous pourrez utiliser votre application sans attendre qu'elle s'inscrive dans la liste des applications lancées en mode graphique.

Vous pouvez aussi les lancer via le [[:terminal]] avec la [[:commande_shell|commande]] suivante :\\
<code>flatpak run identifiant.du.logiciel</code>

<note tip>Astuce n° 1 : tapez **flatpak run** + la 1er lettre du nom complet du logiciel, et utilisez **tabulation** pour voir les noms exacts des applications installées correspondantes</note>
<note tip>Astuce n° 2 : avec **flatpak list** vous pouvez obtenir la liste des application installées avec leur nom complet (en colonne "Application ID")</note>
<note tip>Astuce n° 3 : en faisant suivre **flatpak run nom.complet.application &** du sigle "&" vous pouvez continuer à utiliser le terminal sans interrompre l'exécution de l'application qui fonctionnera en arrière-plan tant que le terminal sera ouvert.</note>

==== Mise à jour des logiciels ====

Les logiciels en format Flatpak sont mis à jour de la même manière que les autres par la logithèque (onglet "Mises à jour").

Pour mettre à jour manuellement les applications en ligne de commande :
<code>flatpak update</code>

==== Désinstallation de logiciels =====

Les logiciels en format Flatpak peuvent être désinstallés de la même manière que les autres par la logithèque (onglet "Installées").

Une application au format flatpak peut être aussi retirée avec la commande 
<code>flatpak uninstall identifiant.du.logiciel</code>
Pour supprimer les dépendances obsolètes c'est l'option --unused à coupler avec uninstall
<code>flatpak uninstall --unused</code>
Exemple :
<code>        ID                                                      Branch           Op
 1. [-] org.freedesktop.LinuxAudio.LadspaPlugins.swh            19.08            r
 2. [-] org.freedesktop.Platform.GL.default                     19.08            r
 3. [-] org.freedesktop.Platform.GL.nvidia-440-100              1.4              r
 4. [-] org.freedesktop.Platform.GL.nvidia-450-66               1.4              r
 5. [-] org.freedesktop.Platform.GL.nvidia-450-80-02            1.4              r
 6. [-] org.freedesktop.Platform.GL.nvidia-455-38               1.4              r
 7. [-] org.freedesktop.Platform.GL.nvidia-455-45-01            1.4              r
 8. [-] org.freedesktop.Platform.VAAPI.Intel                    19.08            r
 9. [-] org.kde.Platform                                        5.14             r
10. [-] org.kde.Platform.Locale                                 5.14             r

Uninstall complete.</code>

====Fichiers de configuration====
Les fichiers de configuration des logiciels installés ne sont pas dans les répertoires "classiques" **~/.config** ou **~/.local**, ils sont dans **~/.var**

===== Problèmes rencontrés =====

==== Lanceurs et icônes ====

Les icônes et fichiers ''.desktop'' des applications Flatpak ne se trouvent pas dans ''/usr/share/'' comme d'habitude, mais dans ''/var/lib/flatpak/exports/share/''.

Il est alors probable que vos thèmes d'icônes et certains utilitaires de paramétrage des menus ne soient pas en mesure de gérer ce fonctionnement.

==== Thème ====

Les versions de Flatpak antérieures à mi-2017 ne prennent pas en compte le thème de l'utilisateur, et n'autorisent donc que le thème //Adwaita// (ou //Adwaita-dark//).\\
La solution à ce problème n'existe que dans les versions de Flatpak postérieures à mi-2017((https://www.omgubuntu.co.uk/2017/05/flatpak-theme-issue-fix|Source)).

Pour les versions plus récentes, référez-vous au [[https://doc.ubuntu-fr.org/tutoriel/installer_application_flatpak#themes|paragraphe dédié du tutoriel d'installation]].

===== Désinstallation =====

Pour supprimer la prise en charge des applications au format flatpak, il suffit de [[:tutoriel:comment_supprimer_un_paquet|supprimer le paquet]] ''flatpak''.

Si vous l'aviez ajouté (version 16.04 seulement), n'oubliez pas de [[:ppa#suppression_d_un_ppa|retirer le PPA]] après désinstallation.

<note>
Si vous désirez simplement retirer //flathub// mais que vous voulez toujours pouvoir profiter de vos applications installées, référez-vous plutôt à la section dédiée du [[:tutoriel/installer_application_flatpak|tutoriel détaillé]].
</note>

===== Voir aussi =====

  * [[wpfr>Flatpak]]
  * [[https://flatpak.org/|Site du Projet]]

Tutoriels :

  * **[[:tutoriel/installer_application_flatpak|Tutoriel détaillé d'installation d'applications flatpak]]**

Dépôts :

  * [[https://flathub.org|Le dépôt majeur où trouver des applications]]

Logithèques compatibles :

  * [[:gnome-software|Logithèque GNOME]]
  * [[:plasma-discover|Logithèque KDE Plasma]]
  * [[:Bauh]]

Formats alternatifs :

  * [[:snap]]
  * [[:appimage]]

-----

//Contributeurs : [[:utilisateurs:roschan]]
, ...//